package com.jay.fault.tolerant;

import com.jay.model.RpcResponse;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;

/**
 * 静默处理异常 - 容错策略
 * 此类实现了容错策略接口，用于在出现异常时进行静默处理，即记录日志但不抛出异常
 * 主要用于需要高度容错的场合，确保程序的健壮性和连续性
 */
@Slf4j
public class FailSafeTolerantStrategy implements TolerantStrategy {

    /**
     * 执行容错处理方法
     * 当出现异常时，此方法会被调用，进行静默处理
     *
     * @param context 异常上下文，包含异常发生时的环境信息，如方法名、参数等
     * @param e 异常对象，表示捕获到的异常
     * @return 返回一个空的RpcResponse对象，表示异常已被处理，不返回具体结果
     */
    @Override
    public RpcResponse doTolerant(Map<String, Object> context, Exception e) {
        // 记录异常信息，采取静默处理方式，即仅记录日志，不对外抛出异常
        log.info("静默处理异常", e);
        // 返回空的响应对象，表示异常处理完成，不提供具体响应内容
        return new RpcResponse();
    }
}

